export class ArrayUtils {
    /**
     * 检查某个元素在数组中的位置，-1表示不存在，以0开始
     * @param {any[]} array
     * @param item
     * @returns {number}
     */
    public static indexOf(array: any[], item: any): number {
        if (!array) {
            return -1;
        }
        let existsIndex = -1;
        array.forEach((obj, index: number) => {
            if (existsIndex === -1 && obj === item) {
                existsIndex = index;
            }
        });
        return existsIndex;
    }

    /**
     * 删除元素
     * @param {any[]} array
     * @param item
     */
    public static remove(array: any[], item: any): boolean {
        const index = ArrayUtils.indexOf(array, item);
        if (index > -1) {
            array.splice(index, 1);
            return true;
        }
        return false;
    }

    /**
     * 判断某个元素是否存在
     * @param {any[]} array
     * @param item
     * @returns {boolean}
     */
    public static contain(array: any[], item: any): boolean {
        if (!array) {
            return false;
        }
        return ArrayUtils.indexOf(array, item) > -1;
    }
}
